iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
AI & Data

利用SeamlessM4T學習語音辨識架構及應用系列 第 5

DAY05 - SeamlessM4T所引用的程式庫

  • 分享至 

  • xImage
  •  

SeamlessM4T使用了四個MetaAI開發的程式庫,fairseq2、SONAR、BLASER 2.0及stopes。在安裝使用前先了解各程式庫有哪些可以使用的模型,以及安裝注意事項。

fairseq2程式庫

fairseq2 是MetaAI建模組件開源庫,為研究及開發人員提供機器翻譯、語言建模和其他序列生成任務。其中預訓練完成且可直接使用的模型如下:

fairseq2也被用於SeamlessM4TSONAR中。不過必須注意fairseq2目前並不支援Windows系統,只支援Linux及Mac系統,Windows建議可以先安裝WSL再安裝fairseq2。

SONAR(Sentence-level multimOdal and laNguage-Agnostic Representations):

是一種新的多語言和句子嵌入空間,提供多種語言的文本和語音編碼器。前篇介紹的SeamlessAlign 是基於 SONAR 嵌入進行探勘的數據集。

用SONAR做S2TT:

from sonar.inference_pipelines.speech import SpeechToTextModelPipeline

s2t_model = SpeechToTextModelPipeline(encoder="sonar_speech_encoder_eng",
                                      decoder="text_sonar_basic_decoder",
                                      tokenizer="text_sonar_basic_decoder")

import torchaudio
inp, sr = torchaudio.load("./tests/integration_tests/data/audio_files/audio_1.wav")
assert sr == 16000, "Sample rate should be 16kHz"

# passing loaded audio files
s2t_model.predict([inp], target_lang="eng_Latn")
# ['Television reports show white smoke coming from the plant.']

# passing multiple wav files 
s2t_model.predict(["./tests/integration_tests/data/audio_files/audio_1.wav",
                   "./tests/integration_tests/data/audio_files/audio_2.wav"], target_lang="eng_Latn")
# ['Television reports show white smoke coming from the plant.',
# 'These couples may choose to make an adoption plan for their baby.']

BLASER 2.0:

BLASER 2.0 是MetaAI最新的模型的多模式翻譯評估指標,支持語音和文本,可直接對源訊號進行操作,不需要任何中間 ASR 系統。與第一個版本(1.0版)一樣,BLASER 2.0 妥善應用輸入和輸出句子嵌入之間的相似性,以提升評估效率。

用BLASER 2.0模型評估語句相似性:

利用原始語句及翻譯語句的 cross-lingual semantic similarity來評估相似性。

from sonar.inference_pipelines.text import TextToEmbeddingModelPipeline
from sonar.models.blaser.loader import load_blaser_model

blaser_ref = load_blaser_model("blaser_2_0_ref").eval()
blaser_qe = load_blaser_model("blaser_2_0_qe").eval()
text_embedder = TextToEmbeddingModelPipeline(encoder="text_sonar_basic_encoder", tokenizer="text_sonar_basic_encoder")

src_embs = text_embedder.predict(["Le chat s'assit sur le tapis."], source_lang="fra_Latn")
ref_embs = text_embedder.predict(["The cat sat on the mat."], source_lang="eng_Latn")
mt_embs = text_embedder.predict(["The cat sat down on the carpet."], source_lang="eng_Latn")

print(blaser_ref(src=src_embs, ref=ref_embs, mt=mt_embs).item())  # 4.688
print(blaser_qe(src=src_embs, mt=mt_embs).item())  # 4.708

*Query Expansion(QE):在資訊檢索和自然語言處理中,"qe" 代表 "Query Expansion"即查詢擴展,用於改進檢索系統性能的技術以更好地匹配文檔。

stopes:

適用機器翻譯研究的預備數據程式庫。第一個版本提供了文本對文本的探勘工具來建立一個適用於翻譯模型的訓練資料集。在第二版本有擴充功能,基於 SONAR嵌入空間,支援訓練大型語音翻譯模型任務。同時提供讀取及寫入 fairseq audiozip 數據集的工具,以及一個新的探勘方式,可以進行語音到語音、文本到語音、語音到文本和文本到文本探勘。

總結

SeamlessM4T引用了四個程式庫,其中SONAR程式庫已具備語音辨識功能,選擇encoder、decoder及tokenizer,predict函式中選擇目標語言,即可將語音數據轉譯成目標語言文本;而BLASER 2.0可以評估語句間的相似性,選擇模型"blaser_2_0_ref"或"blaser_2_0_qe",送入文本語句,即可顯示其語句間的關聯分數。


上一篇
DAY04 - SeamlessM4T使用的數據集Seamless_align
下一篇
DAY06 - SeamlessM4T安裝及使用環境建置
系列文
利用SeamlessM4T學習語音辨識架構及應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言